package com.wopinla.controller;

import com.wopinla.pojo.*;
import com.wopinla.service.*;
import com.wopinla.utils.JSONResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController                                                         //添加RestController注解
@RequestMapping(path = "/goods")                                      //这个是路由，也就是访问以下方法路径前必须带有/example,可以不要，建议加上，这样可以细分路径
@CrossOrigin(allowCredentials = "true", maxAge = 3600)

public class goodsController {
    @Autowired                                                          //注入exampleService服务
    private goodsService goodsService;

    @RequestMapping(value = "/searchgoods", method = RequestMethod.GET)    //访问路由是http://127.0.0.1:7747/example/sayhello
    public JSONResult searchgoods(Integer sid, String name, String type, String property){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        Map map = new HashMap();                                        //查询数据库
        map.put("sid", sid);                                  //查询时，有多少条件就加多少条件
        map.put("name", name);                                  //如果还要限制id，就加map.put("id", id);
        map.put("type",type);
        map.put("property",property);
        System.out.println("searchgoods");
        List<goods> goodsList = goodsService.searchGoodsByMap(map);
        return JSONResult.ok(goodsList);                                             //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
    @RequestMapping(value = "/screeninggoods", method = RequestMethod.GET)    //访问路由是http://127.0.0.1:7747/example/sayhello
    public JSONResult screeninggoods(String type,String brand,Integer max,Integer min){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        Map map = new HashMap();                                        //查询数据库
        map.put("type", type);                                  //查询时，有多少条件就加多少条件
        map.put("brand", brand);                                  //如果还要限制id，就加map.put("id", id);
        map.put("min",min);
        map.put("max",max);
        System.out.println("screeninggoods");
        List<goods> goodsList = goodsService.screeningGoodsByMap(map);
        return JSONResult.ok(goodsList);                                             //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
    @RequestMapping(value = "/goodsdetails", method = RequestMethod.GET)    //访问路由是http://127.0.0.1:7747/example/sayhello
    public goods goodsdetails(Integer sid){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("goodsdetails");
        return goodsService.goodsdetailsById(sid);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
    @RequestMapping(value = "/addgoods", method = RequestMethod.GET)    //访问路由是http://127.0.0.1:7747/example/sayhello
    public int addgoods(Integer eid,String type,String name,Integer price,String property,String brand,String remainnum,String avatarUrl){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("addgoods");
        Map map = new HashMap();                                        //查询数据库
        map.put("type", type);                                  //查询时，有多少条件就加多少条件
        map.put("brand", brand);                                  //如果还要限制id，就加map.put("id", id);
        map.put("eid",eid);
        map.put("name", name);                                  //查询时，有多少条件就加多少条件
        map.put("price", price);                                  //如果还要限制id，就加map.put("id", id);
        map.put("property",property);
        map.put("remainnum", remainnum);                                  //查询时，有多少条件就加多少条件//如果还要限制id，就加map.put("id", id);
        map.put("avatarUrl",avatarUrl);


        return goodsService.addgoods(map);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
    @RequestMapping(value = "/removegoods", method = RequestMethod.GET)    //删除商品
    public int removegoods(Integer sid){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("removegoods");
        return goodsService.removegoods(sid);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }

    @RequestMapping(value = "/shelves", method = RequestMethod.GET)    //商品上架
    public int shelves(Integer sid){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("shelves");
        return goodsService.shelves(sid);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
    @RequestMapping(value = "/shelvesgoods", method = RequestMethod.GET)    //商品上架
    public JSONResult shelvesgoods(Integer eid,Integer sid){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("shelvesgoods");
        List<goods> goodsList=goodsService.shelvesgoods(eid,sid);
        return JSONResult.ok(goodsList);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }

    @RequestMapping(value = "/undercarriage", method = RequestMethod.GET)    //商品下架
    public int undercarriage(Integer sid){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("undercarriage");
        return goodsService.undercarriage(sid);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
    @RequestMapping(value = "/goods", method = RequestMethod.GET)
    public JSONResult goods(Integer eid,Integer sid){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("goods");
        List<goods> goodsList=goodsService.goods(eid,sid);
        return JSONResult.ok(goodsList);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
    @RequestMapping(value = "/good", method = RequestMethod.GET)
    public JSONResult good(Integer eid,Integer sid){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("good");
        List<goods> goodsList=goodsService.good(eid,sid);
        return JSONResult.ok(goodsList);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }

    @RequestMapping(value = "/updategoods", method = RequestMethod.GET)    //访问路由是http://127.0.0.1:7747/example/sayhello
    public int updategoods(Integer sid,Integer eid,String type,String name,Integer price,String property,String brand,String remainnum,String avatarUrl){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("addgoods");
        Map map = new HashMap();
        map.put("sid",sid);//查询数据库
        map.put("type", type);                                  //查询时，有多少条件就加多少条件
        map.put("brand", brand);                                  //如果还要限制id，就加map.put("id", id);
        map.put("eid",eid);
        map.put("name", name);                                  //查询时，有多少条件就加多少条件
        map.put("price", price);                                  //如果还要限制id，就加map.put("id", id);
        map.put("property",property);
        map.put("remainnum", remainnum);                                  //查询时，有多少条件就加多少条件//如果还要限制id，就加map.put("id", id);
        map.put("avatarUrl",avatarUrl);
        return goodsService.updategoods(map);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
    @RequestMapping(value = "/updategoodstate", method = RequestMethod.GET)    //访问路由是http://127.0.0.1:7747/example/sayhello
    public int updategoodstate(Integer id,String sale,String stock,String state,String activity){
        /*上面规定需要传俩个参数，username，password，因此get请求时，参数名和username,password对应
        对于这个查找完整地请求路径是http://127.0.0.1:7747/example/sayhello?username=jack&password=123*/
        System.out.println("addgoods");
        Map map = new HashMap();
        map.put("id",id);//查询数据库
        map.put("sale", sale);                                  //查询时，有多少条件就加多少条件
        map.put("stock", stock);                                  //如果还要限制id，就加map.put("id", id);
        map.put("state",state);
        map.put("activity", activity);                                  //查询时，有多少条件就加多少条件
        return goodsService.updategoodstate(map);                                          //可以直接把列表返回,返回在前端就是json样式，前端可以直接使用；
    }
}
